import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta superClase controla todos los movimientos de los enemigos, checa si alguno de estos fue tocado por una bomba, y de ser asi lo desaparece
 * del escenario. Los enemigos son una parte fundamental del juego ya que ellos se encargan de quitarle vidas al jugador, matarlos, o quitarles
 * algun poder que estos hallan agarrado. Esto hace que el juego sea mas divertido
 * @autor Irma Delgado
 * @versión noviembre/2014
 */
public class Enemigo extends Actor
{
    private int velX; //Velocidad horizontal a la que se mueve el enemigo
    private int velY;//Velocidad vertical a la que se mueve el enemigo
    /**
     * Act - hace lo que Enemigo quiere hacer. Este método se llama "cuando quiera" o whenever
     * los botones 'Actuar or 'Ejecutar' son presionados en el entorno.
     */
    /**
     * Constructor de Enemigo donde se inicializan las velcidades
       **/
    public Enemigo()
    {
        velX=3;
        velY=3;
    }
    public void act() 
    {
        
    } 
    /**
     * Metodo para checar si una explosion lo halla tocado este desaparece del juego
       */
    public void checaExplosion()
    {
        if(this.isTouching(Explosion.class))
        {
            getWorld().removeObject(this);
        }
    }
    /**
     * Metodos para mover vertical y horizontalmente, teniendo en cuenta que tienen que rebotar
       */
    public void moverHorizontal()
    {
        
        if(this.isTouching(Plant.class)||this.isTouching(Pared.class)||this.getX()+this.getImage().getWidth()/2>=getWorld().getWidth()||this.getX()+this.getImage().getWidth()/2<=0)//||this.isTouching(Bomba.class))
            velX=-velX;
         //   velY=-velY;
        setLocation(getX()+velX,getY());
    }
     public void moverVertical()
    {
        
        if(this.isTouching(Plant.class)||this.isTouching(Pared.class)||this.getX()+this.getImage().getWidth()/2>=getWorld().getWidth())//||this.isTouching(Bomba.class))
            velY=-velY;
         //   velY=-velY;
        setLocation(getX(),getY()+velY);
    }
    
}
